home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / progsrc / jpeg5b / jpeg-5b / makefile.bcc < prev    next >
Encoding:
Makefile  |  1995-03-14  |  11.6 KB  |  418 lines

  1. (HNxHHO$B<BBBB<$<BBBB<<BBBB<$BBBBBF:0BBBBF:$BBBF:B<""AAA""AAAAA"<B@@B<" <2\A">>xDDxDNDD <` <>BB= > <BBBB< BBBBF:2L\bBBBB&AaQIECA8$>""">0@@A>@@@ b$(. b$(*
  2.     $    $    $DDDDDDD¬U¬U¬U¬U¬U¬U¬Uw▌w▌w▌w▌w▌w▌w▌°°°⌠ⁿ°°⌠⌠ⁿ⌠⌠ⁿⁿ°°°    ≈  ≈  ≈≈         °                     ≡≡≡≡≡≡≡≡≡≡≡≡≡≡       7HH7"B\DBBRL~BB@@@@@@?R~!!~?DDDD8BBBB|@@Ç>P>III>"AA""AAA"Uw<DDDD86II6"EIQ"\ @@ "AAAAA> >     hH02L2L$$<H(,$<>>>>>>>         VMODE=VIDEOMODEGET
  3.             IF WHICHVGA = 0 THEN STOP
  4.             DUMMY=RES640
  5.             SETVIEW 100, 100, 539, 379
  6.             FILLVIEW 10
  7.             WHILE INKEY$ = ""
  8.             WEND
  9.             VIDEOMODESET VMODE
  10.             END
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.                                                                          63
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.           FONTGETINFO
  35.  
  36.             PROTOTYPE
  37.  
  38.             SUB FONTGETINFO (Width%, Height%)
  39.  
  40.             INPUT
  41.  
  42.             no input parameters
  43.     WEND
  44.             MOUSEEXIT
  45.             VIDEOMODESET VMODE
  46.             END
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.                                                                          86
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.           MOUSECURSORDEFAULT
  95.  
  96.             PROTOTYPE
  97.  
  98.             SUB MOUSECURSORDEFAULT ()
  99.  
  100.             INPUT
  101.  
  102.             no input parameters
  103.  
  104.             OUTPUT
  105.  
  106.             no value returned
  107.  
  108.             USAGE
  109.  
  110.             MOUSECURSORDEFAULT defines the mouse cursor to be a small
  111.        ,K$╖┼╘╤░XQ)σ┤ö≡÷┴─┤àñT┘,╘¬àñX9╘⌠àñ\9╘UÜ╢≤`9╘4a╘d9╘UTa╘h9╘ta╘l9╘Uöa╘p9╘┤a╘t┘PT±x┴îÇ╖0▓ïα│ÅαU┤ôα╡ùα╢¢α╖úΓ╘pǺΓ╕¡αë ╚┴πì°sKÉφb<$⌡▌ë     φë φë I1φë  Eφë $YφÆë (mφë ,üφë 0$òφë á⌐φë ñ╜φë I¿╤φë ¼σφë ░∙φÆë 4
  112. ²ë ┤!²ë ╕$5²ë ╝I²ë └]²ë ⌐8q²ë <àⁿΦiǬ∙PÖÇ ¥Ç
  113. ░╨â@%8@ΓΦá╝╤░≡cÑÅ*$
  114. ░╕≡ż≡τ╥m¿⌡ε    ╨@#µ≈$âh$âαra╨à`¥è∩Ç%Ç +─▀ TîcOî∩â°1<@  [$¿Ç¼ MMl·0ƒ Y¼─!%6a▐è ¥ì ßá+?±  P<îaTTV ╪iÇ¡≥░ `_ñ»%Çá᪠P█º»ε`éa∙É%H«┴íA%Gár∙É
  115. iw∙Éiφ`╧≥≡╤Çmⁿ▒
  116. ]ÆAáσw7░⌡∩    $·╟Ç√É&^`  ┐ $ⁿ  $■ $╒ nk$J-ÉQ1£PéBù »0αQ/Ñ4╜£░ºP≈Ñ4Ç⌡$(ª▀$@C]Æé≈└╕_SÇçÑ4=iÉ⌠ä╣<_np@Ñ45ò▒Y3ü¼Qí░.i>╠@5+┴╙É╛╙$@ #┴@«╦
  117. $╤
  118. #@Ñú4,p&e÷ü¼_ÇQºÑ4
  119. òQ  ü@;¡_áQ@e╠≥@mp!┤a╘O░√`Pñź ÇT°8ÿ!¼Åñ$½╙"q¿ PñCÇ¿α√└╥░eT"ß<p°%Pæ(╧%pδ¥/OêW0Ǽbφ φ B@[â¼8â≥µ≤(    ¿⌡%(Ç∩áTÿp+ óÜ▓0!Σ±(1±
  120. ░┤ÖÇD└D0Å╡`   $ «îO@╧1
  121. a╝╤j-0ñ│`@╖bΦaT1═⌠╝╤Σ²¼±,1öíî9lÿ28ÇÅ`Γî¿P²$,N0┴O0a╫δ≤0σú`°î╖#0δ≡└X▄1»Σî(▒¥Ç█Ñ"qá√1CÇú╟╨º Å
  122. FT Θ²î└1ÇY0    w ²à░$@AÅ`╦Φ¼╘`▄1A  }┐Ç*5 ΩSδδî`¼îaδæ¼î5 1¿⌡Ω╜⌠ ¼¥╬ü└Qî1S
  123. ╛≤î9╨iÇ,∙PU(}Ç$üÇ àÇ`σìÇ`QαÜBO$%ÿÇ╧"$Ç«Ç]É.┬\`%WÉ$  W0 ÄâO0]αG┬ur╩
  124. ░£▒
  125. Q¢ú╔Ç≡°s?`X0╘`@ µWâ@╣aá εdq`¥9?Ç&+o0µyÄΣAÅuV(7P╬±@IdQ╕@Å┤@;Ç▓?Çò│CÇ┤╟╨╡KÇÄ30ⁿφ° ó╬ì+]Ä╦≡     Mö╝σ ²y5<!└▀óâ╝É3~mp    $<╛≤9Æ-2ⁿ≡@T,╞Σa,)Pæ└¥#¼╪Q┤S(¼@Aîa
  126. ≡╤@Ö²±⌠KëD─┴▒▀0╨Ñ$╩-0 ╨ê*╙▓edm`î=3Kß-10è=≥≤²└£mîjy ÿe²ⁿ╨i╕e▓ΣmαÖ╢C%Ç*ê*0 EátQZ`mÄLP%    °üⁿªüNQ∙  T¿<qtWΩc z░ÅÇñΩçǪçÇ«;└<┐á¼¥. á?<Σscî)áí := 0;
  127.       end;
  128.     end;
  129.   end;
  130.   WaitToGo;
  131. end; { UserLineStylePlay }
  132.  
  133.  
  134. procedure SayGoodbye;
  135. { Say goodbye and then exit the program }
  136. var
  137.   ViewInfo : ViewPortType;
  138. begin
  139.   MainWindow('');
  140.   GetViewSettings(ViewInfo);
  141.   SetTextStyle(TriplexFont, HorizDir, 4);
  142.   SetTextJustify(CenterText, CenterText);
  143.   with ViewInfo do
  144.     OutTextXY((x2-x1) div 2, (y2-y1) div 2, 'That''s all folks!');
  145.   StatusLine('Press any key to quit...');
  146.   repeat until KeyPressed;
  147. end; { SayGoodbye }
  148.  
  149.  
  150. PROCEDURE SelectMode;
  151. VAR
  152.     choice1,choice2     : CHAR;
  153.    xsize,ysize            : WORD;
  154. BEGIN
  155.     (* Let's select a mode *)
  156.     ClrScr;
  157.     WriteLn('VESADEMO:');
  158.     WriteLn('1. 256 colors');
  159.     WriteLn('2. 32768 colors');
  160.     WriteLn('3. 65536 colors');
  161.     WriteLn('4. 16777216 colors');
  162.     WriteLn('Q uit');
  163.     WriteLn;
  164.     Write('Your choice: ');
  165.     REPEAT
  166.         ReadLn(choice1);
  167.       IF choice1 <> '1' THEN BEGIN
  168.           WriteLn('Sorry !');
  169.          WriteLn('This demo wasn''t written for more as 256 colors !');
  170.          WriteLn('You would only get a limited impression of the Hi-& TrueColor modes...');
  171.          WriteLn('Switching to 256 colors.');
  172.          choice1 := '1';
  173.       END;
  174.     UNTIL choice1 IN ['1'..'4','q'];
  175.     IF choice1 = 'q' THEN Halt;
  176.  
  177.     WriteLn;
  178.     WriteLn;
  179.     WriteLn('a. 320x200');
  180.     WriteLn('b. 640x480');
  181.     WriteLn('c. 800x600');
  182.     WriteLn('d. 1024x768');
  183.     WriteLn('e. 1280x1024');
  184.     WriteLn('Q uit');
  185.     WriteLn;
  186.     Write('Your choice: ');
  187.     REPEAT
  188.         ReadLn(choice2);
  189.     UNTIL choice2 IN ['a'..'e','q'];
  190.     IF choice2 = 'q' THEN Halt;
  191.  
  192.     CASE choice2 OF
  193.         'a' : BEGIN
  194.             xsize := 320;
  195.             ysize := 200;
  196.         END;
  197.         'b' : BEGIN
  198.             xsize := 640;
  199.             ysize := 480;
  200.         END;
  201.         'c' : BEGIN
  202.             xsize := 800;
  203.             ysize := 600;
  204.         END;
  205.         'd' : BEGIN
  206.             xsize := 1024;
  207.             ysize := 768;
  208.         END;
  209.         'e' : BEGIN
  210.             xsize := 1280;
  211.             ysize := 1024;
  212.         END;
  213.     END;
  214.     CASE choice1 OF
  215.         '1' : mode := FindVesaMode(xsize,ysize,8);
  216.         '2' : mode := FindVesaMode(xsize,ysize,15);
  217.         '3' : mode := FindVesaMode(xsize,ysize,16);
  218.         '4' : mode := FindVesaMode(xsize,ysize,24);
  219.     END;
  220.     IF mode = 0 THEN BEGIN
  221.         WriteLn('No such mode could be found !');
  222.         WriteLn('Switching to to 320x200.');
  223.         ReadKey;
  224.         mode := V320x200x256;
  225.     END;
  226. END;
  227.  
  228. begin { program body }
  229.   SelectMode;
  230.   Initialize;
  231.   ReportStatus;
  232.  
  233. {  AspectRatioPlay; }
  234.   FillEllipsePlay;
  235.   SectorPlay;
  236.   WriteModePlay;
  237.  
  238.   ColorPlay;
  239.   { PalettePlay only intended to work on these drivers: }
  240.   if (GraphDriver = EGA) or
  241.       (GraphDriver = EGA64) or
  242.       (GraphDriver = VGA) then
  243.      PalettePlay;
  244.   PutPixelPlay;
  245. {  PutImagePlay; }
  246.   RandBarPlay;
  247.   BarPlay;
  248.   Bar3DPlay;
  249.   ArcPlay;
  250.   CirclePlay;
  251.   PiePlay;
  252.   LineToPlay;
  253.   LineRelPlay;
  254. {  LineStylePlay; }
  255. {  UserLineStylePlay; }
  256.   TextDump;
  257.   TextPlay;
  258.   CrtModePlay;
  259.   FillStylePlay;
  260.   FillPatternPlay;
  261.   PolyPlay;
  262.   SayGoodbye;
  263. {  CloseGraph; }
  264.   CloseVesa;
  265. end.
  266. ***************************************************
  267.     '* SHOW D2ROTATE (ABOUT THE ORIGIN)
  268.     '****************************************************************∞╥≤c≤*φè#^│v/╒:j═φ0t+l▓ô"¬"g└≡?%ªêΣ│H╫½╫╜├¿U'╒⌐⌡ ßV?╩
  269. ¬ujOΦçEZ1∞▐! ▄B╛Σ8║æ]1GlNÜ┐q▌▓;ô$ΦzE<cª*bEô#ä╧ñÅ"∩─LrdaÖ ╠º╫a^¥£å╬1~)@ëÖMδ╫0═6DäFê¬Çv┼ß╨kæpτ╪É)}ª 1w3╤╧ü⌡¥╓h▓╣≈ïÅaÑ[TⁿHqªÉ╝DKÄ─Y-∞tT╤Θ╨º╟╪.*ÇI9lΦ≈{πτcσ$τπßoFr╪╨∩┼╞╟;O2■e²LÜ4^N|╪½ÅO?╔°FOz`╟╟╟'<>>π$πΘù6·
  270. Xgî╖│°oîδπGƒd╝▀░?■╪╔_9L ⌡ôⁿq'æO▀ƒn4╔▀╚▄┼3pτ.òO°·}÷╕ⁿ±'æO?ít│!√8ßÑ≤/┐╣p┼≥┘E╦Vox╕cΦé5╟╚º╙$?√$≥ΘZεsî≡åìΓpKù¢ïß X╥ 9╞≈\µk┤O¥_ 5Üö\≤éÄ┌╤A[╤ÿáï┼éNⁿÅu16    g,%hc╙╨cD╨Vï┘R¢öKñR;8εáΣ╢╪ós╤π╡á└èxgzPÄMú╫yαºÉ+σJ¢i+▓â3╥    ═Ñ╙î^ºG▓█πérφçs %#(╗⌠?┼%u8≡6+QÉ))ò)Afw≈╣╪)B&4░åLXV:δät@Å.;5Φf╢Ät┐ΣJ╫─U8úÇ╟éö£╕p╔┴⌠vg╨╬╥é÷╪╣┬ΓI.ç≡^v╤ZΦÇ& ╒┌6ñô6XßNè╡╬E₧Ñ
  271. kIº╠▄A+╣╥éb²tæ-Y¡½αÑa═uuîÇ╢αêvhuª╡SÅ┤vèùú¥F;p<d⌐/F─d█éT%▓KΦû=q■öI┐ ┐╠6S$▒÷╚ENΩ¥Fû9╔┌R'╝ ╧φ└?g┬j▓0═/b╖₧─mûé╢┌»ÿÄë/·<éò■░╤╟╢├Xσ:╥P3Θ"╬Læsφ░┌öSö!╗¿*mN£WΣÇ£┤~#╗ææ≥RΩóh:à▌.æ≈╕▌v£äàd▒à╒├=░╖π║$howeg*╬    6ù▄ƒô╕φ░Ö╢qΘD>(w@úKεHÆ╛öúΣU
  272. éÜR╔╤W▄èê 2M%ó.▓SNÖA1ùJE╢║l]▓¿>\%└Å4ßO▄£â⌐& ê/)8vSP▀▓ôⁿææ√ü√ÑÄa⌠â╚4S╓╟P- ?Σá╕▓Næ*q╡UΘ▓≈^ñ·I.rúR&$Y^╚%è≡B┌≈Ceat
  273.     Color := RandColor;
  274.     SetColor(Color);
  275.     SetFillStyle(Random(CloseDotFill)+1, Color);
  276.     Bar3D(Random(MaxWidth), Random(MaxHeight),
  277.           Random(MaxWidth), Random(MaxHeight), 0, TopOff);
  278.   until KeyPressed;
  279.   WaitToGo;
  280. end; { RandBarPlay }
  281.  
  282. procedure ArcPlay;
  283. { Draw random arcs on the screen }
  284. var
  285.   MaxRadius : word;
  286.   EndAngle : word;
  287.   ArcInfo : ArcCoordsType;
  288. begin
  289.   MainWindow('Arc / GetArcCoords demonstration');
  290.   StatusLine('Esc aborts or press a key');
  291.   MaxRadius := MaxY div 10;
  292.   repeat
  293.     SetColor(RandColor);
  294.     EndAngle := Random(360);
  295.     SetLineStyle(SolidLn, 0, NormWidth);
  296.     Arc(Random(MaxX), Random(MaxY), Random(EndAngle), EndAngle, Random(MaxRadius));
  297.     GetArcCoords(ArcInfo);
  298.     with ArcInfo do
  299.     begin
  300.       Line(X, Y, XStart, YStart);
  301.       Line(X, Y, Xend, Yend);
  302.     end;
  303.   until KeyPressed;
  304.   WaitToGo;
  305. end; { ArcPlay }
  306.  
  307. procedure PutPixelPlay;
  308. { Demonstrate the PutPixel and GetPixel commands }
  309. const
  310.   Seed   = 1962; { A seed for the random number generator }
  311.   NumPts = 2000; { The number of pixels plotted }
  312.   Esc    = #27;
  313. var
  314.   I : word;
  315.   X, Y, Color : word;
  316.   XMax, YMax  : integer;
  317.   ViewInfo    : ViewPortType;
  318. begin
  319.   MainWindow('PutPixel / GetPixel demonstration');
  320.   StatusLine('Esc aborts or press a key...');
  321.  
  322.   GetViewSettings(ViewInfo);
  323.   with ViewInfo do
  324.   begin
  325.     XMax := (x2-x1-1);
  326.     YMax := (y2-y1-1);
  327.   end;
  328.  
  329.   while not KeyPressed do
  330.   begin
  331.     { Plot random pixels }
  332.     RandSeed := Seed;
  333.     I := 0;
  334.     while (not KeyPressed) and (I < NumPts) do
  335.     begin
  336.       Inc(I);
  337.         PutPixel(Random(XMax)+1, Random(YMax)+1, RandColor);
  338.     end;
  339.  
  340.     { Erase pixels }
  341.     RandSeed := Seed;
  342.     I := 0;
  343.     while (not KeyPressed) and (I < NumPts) do
  344.     begin
  345.       Inc(I);
  346.       X := Random(XMax)+1;
  347.       Y := Random(YMax)+1;
  348.       Color := GetPixel(X, Y);
  349.         if Color = RandColor then
  350.           PutPixel(X, Y, 0);
  351.      end;
  352.   end;
  353.   WaitToGo;
  354. end; { PutPixelPlay }
  355.  
  356. procedure PutImagePlay;
  357. { Demonstrate the GetImage and PutImage commands }
  358.  
  359. const
  360.   r  = 20;
  361.   StartX = 100;
  362.   StartY = 50;
  363.  
  364. var
  365.   CurPort : ViewPortType;
  366.  
  367. procedure MoveSaucer(var X, Y : integer; Width, Height : integer);
  368. var
  369.   Step : integer;
  370. begin
  371.   Step := Random(2*r);
  372.   if Odd(Step) then
  373.     Step := -Step;
  374.   X := X + Step;
  375.   Step := Random(r);
  376.   if Odd(Step) then
  377.     Step := -Step;
  378.   Y := Y + Step;
  379.  
  380.   { Make saucer bounce off viewport walls }
  381.   with CurPort do
  382.   begin
  383.     if (x1 + X + Width - 1 > x2) then
  384.       X := x2-x1 - Width + 1
  385.     else
  386.       if (X < 0) then
  387.         X := 0;
  388.     if (y1 + Y + Height - 1 > y2) then
  389.       Y := y2-y1 - Height + 1
  390.     else
  391.       if (Y < 0) then
  392.         Y := 0;
  393.   end;
  394. end; { MoveSaucer }
  395.  
  396. var
  397.   Pausetime : word;
  398.   Saucer    : pointer;
  399.   X, Y      : integer;
  400.   ulx, uly  : word;
  401.   lrx, lry  : word;
  402.   Size      : word;
  403.   I         : word;
  404. begin
  405.   ClearDevice;
  406.   FullPort;
  407.  
  408.   { PaintScreen }
  409.   ClearDevice;
  410.   MainWindow('GetImage / PutImage Demonstration');
  411.   StatusLine('Esc aborts or press a key...');
  412.   GetViewSettings(CurPort);
  413.  
  414.   { DrawSaucer }
  415.   Ellipse(StartX, StartY, 0, 360, r, (r div 3)+2);
  416.   Ellipse(StartX, StartY-4, 190, 357, r, r div 3);
  417.   Line(StartX+7, StartY-6, StartX+10, StartY-12);
  418.   Circle(StartX+10, StartY-12, 2);
  419.   Line(StartX-7, StartY-6, StartX-10, StartY-12);
  420.   Circle(StartX-10, StartY-12, 2);
  421.   SetFillStyle(SolidFill, MaxColor);
  422.   FloodFill(StartX+1, StartY+4, GetColor);
  423.  
  424.   { ReadSaucerImage }
  425.   ulx := StartX-(r+1);
  426.   uly := StartY-14;
  427.   lrx := StartX+(r+1);
  428.   lry := StartY+(r div 3)+3;
  429.  
  430.   Size := ImageSize(ulx, uly, lrx, lry);